package statesPattern;

/***
 * 这是所有的状态接口。这些方法直接映射到糖果机上可能发生的动作
 *
 * 然后将设计中的每个状态都封装成一个类，每个都实现State接口
 *
 * 状态模式：允许对象在内部状态改变时改变它的行为，对象看起来好像修改了它的类
 * 一个对象“看起来好像修改了它的类”时什么意思？
 * 从客户的视角来看：如果说你使用的对象能够完全改变它的行为，那么你会觉得，这个对象
 * 实际上是从别的类实例化而来的。然而，实际上，你知道我们是在使用组合通过简单引用
 * 不同的状态对象来造成类改变的假象。
 *
 *
 *
 */
public interface State {
    void insertQuarter();
    void ejectQuarter();
    void turnCrank();
    void dispense();
}
